package top.infopub.job.fia.service;


import java.math.BigDecimal;
import java.util.Map;

import top.infopub.generic.GenericService;
import top.infopub.model.fia.IncomeBill;


public interface IncomeBillService extends GenericService<IncomeBill, String> {

    /** codegen **/

    /**
     * 查询某个项目投资性现金流入=（ 6=项目专项基金 + 8=政府补贴 + 9=回购款） 
     * @param where incomeDateStart=开始时间，incomeDateEnd=结束时间，hrOrgProId
     * @return 
     * @see
     */
    BigDecimal selectProQaOfCashIn(Map<String, Object> where);
    
    /**
     * 查询某个项目  6=项目专项基金   8=政府补贴  9=回购款 singleType
     * @param where incomeDateStart=开始时间，incomeDateEnd=结束时间，hrOrgProId，singleType
     * @return 
     * @see
     */
    BigDecimal selectProSingleOfCashIn(Map<String, Object> where);

    /**
     * 查询某个区域投资性现金流入 
     * @param where incomeDateStart=开始时间，incomeDateEnd=结束时间，hrOrgAreaId
     * @return 
     * @see
     */
    BigDecimal selectAreaQaOfCashIn(Map<String, Object> where);

    /**
     * 汇总所有项目投资性现金流入   o.project_code is not null<项目与公司未绑定>
     * @param where 开始时间，结束时间
     * @return 
     * @see
     */
    BigDecimal selectAllProQaOfCashIn(Map<String, Object> where);
    
    /**
     * 查询某个项目融资收款 
     * @param where incomeDateStart=开始时间，incomeDateEnd=结束时间，hrOrgProId
     * @return 
     * @see
     */
    BigDecimal selectIncomeOfCashIn(Map<String, Object> where);
    
    /**
     * 查询某个项目政府来源收款 
     * @param where incomeDateStart=开始时间，incomeDateEnd=结束时间，hrOrgProId
     * @return 
     * @see
     */
    BigDecimal selectIncomeAmountOfCashIn(Map<String, Object> where);
    
    /**
     * 回购款(月度已收款)
     * @param where
     * @return 
     * @see
     */
    BigDecimal selectIncomeOfCashInNine(Map<String, Object> where);
    
    /**
     * 项目运维收入(月度已收款)
     * @param where
     * @return 
     * @see
     */
    BigDecimal selectIncomeOfCashInTen(Map<String, Object> where);

}